-- Nuevo campo valacc.id, nueva pk. Para Hibernate.


CREATE SEQUENCE seq_valacc
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;
ALTER TABLE seq_valacc OWNER TO abacouser;

ALTER TABLE valacc ADD COLUMN id int;
COMMENT ON COLUMN public.valacc.id IS 'WEB: Hibernate no trabaja con claves compuestas. Para dejarlo dual, java trabajara con el id como pk. Windows con cod/signo como antes. Id se numera automaticamente para que sea transparente para Windows.';

-- Generamos todos los ids.
UPDATE valacc SET id=nextval('seq_valacc');

ALTER TABLE valacc ALTER COLUMN id SET NOT NULL;

-- Cambiamos la PK.
ALTER TABLE valacc DROP CONSTRAINT valacc_pkey;
ALTER TABLE valacc ADD CONSTRAINT valacc_pkey PRIMARY KEY (id);

-- Definimos una clave secundaria sin repeticion para que el para cod/signo siga siendo unico.
ALTER TABLE valacc ADD CONSTRAINT gestion_ai_valaccunique UNIQUE(cod, signo);

-- Definimos el valor por defecto del nuevo id como el siguiente de la secuencia, para que sea transparente para windows, que no conoce la existencia de este campo.
ALTER TABLE valacc ALTER COLUMN id SET DEFAULT nextval('seq_valacc');



-- =====================================
   SELECT aaversion('397.03');
-- =====================================